/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.colegiatura.beans;

import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import org.cip.esymons.colegiatura.bc.ColegiadoDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoEspecialidadDelegate;
import org.cip.esymons.colegiatura.bc.EspCapDelegate;
import org.cip.esymons.colegiatura.be.Colegiado;
import org.cip.esymons.general.be.Capitulo;
import org.cip.esymons.general.be.ColegiadoEspecialidad;
import org.cip.esymons.general.be.Especialidad;
import org.cip.esymons.general.be.EspecialidadCapitulo;

/**
 *
 * @author ADMINISTRADOR
 */
public class cambioCapituloController {

    private ColegiadoDelegate colegiadoDelegado;
    private ColegiadoEspecialidadDelegate colEspDelegado;
    private EspCapDelegate espCapDelegado;


    private Colegiado colegiado;
    private ColegiadoEspecialidad colEsp,colegiadoEsp;
    private EspecialidadCapitulo espCap;
    private Especialidad esp;
    private Capitulo capitulo;
    private String codigoCIP;
    private List lista;
    private Boolean activo,noHallado;

    public cambioCapituloController() {

        colegiadoDelegado = new ColegiadoDelegate();
        colEspDelegado = new ColegiadoEspecialidadDelegate();
        espCapDelegado = new EspCapDelegate();

        colegiado = new Colegiado();
        colEsp = new ColegiadoEspecialidad();
        espCap = new EspecialidadCapitulo();
        esp = new Especialidad();
        capitulo = new Capitulo();

        colegiadoEsp = new ColegiadoEspecialidad();
        activo = false;
        noHallado = false;
    }

    public Boolean getNoHallado() {
        return noHallado;
    }

    public void setNoHallado(Boolean noHallado) {
        this.noHallado = noHallado;
    }

    public Boolean getActivo() {
        return activo;
    }

    public void setActivo(Boolean activo) {
        this.activo = activo;
    }

    public ColegiadoEspecialidad getColEsp() {
        return colEsp;
    }

    public void setColEsp(ColegiadoEspecialidad colEsp) {
        this.colEsp = colEsp;
    }

    public ColegiadoEspecialidadDelegate getColEspDelegado() {
        return colEspDelegado;
    }

    public void setColEspDelegado(ColegiadoEspecialidadDelegate colEspDelegado) {
        this.colEspDelegado = colEspDelegado;
    }

    public Colegiado getColegiado() {
        return colegiado;
    }

    public void setColegiado(Colegiado colegiado) {
        this.colegiado = colegiado;
    }

    public ColegiadoDelegate getColegiadoDelegado() {
        return colegiadoDelegado;
    }

    public void setColegiadoDelegado(ColegiadoDelegate colegiadoDelegado) {
        this.colegiadoDelegado = colegiadoDelegado;
    }

    public String getCodigoCIP() {
        return codigoCIP;
    }

    public void setCodigoCIP(String codigoCIP) {
        this.codigoCIP = codigoCIP;
    }

    public Capitulo getCapitulo() {
        return capitulo;
    }

    public void setCapitulo(Capitulo capitulo) {
        this.capitulo = capitulo;
    }

    public Especialidad getEsp() {
        return esp;
    }

    public void setEsp(Especialidad esp) {
        this.esp = esp;
    }

    public EspecialidadCapitulo getEspCap() {
        return espCap;
    }

    public void setEspCap(EspecialidadCapitulo espCap) {
        this.espCap = espCap;
    }

    public EspCapDelegate getEspCapDelegado() {
        return espCapDelegado;
    }

    public void setEspCapDelegado(EspCapDelegate espCapDelegado) {
        this.espCapDelegado = espCapDelegado;
    }

    public List getLista() {
        return lista;
    }

    public void setLista(List lista) {
        this.lista = lista;
    }

    public ColegiadoEspecialidad getColegiadoEsp() {
        return colegiadoEsp;
    }

    public void setColegiadoEsp(ColegiadoEspecialidad colegiadoEsp) {
        this.colegiadoEsp = colegiadoEsp;
    }
    
    public String buscaPorCip(){
        try{

            Integer cifras = codigoCIP.length();
             if(cifras<3){
                 codigoCIP = "0000"+ codigoCIP;
             }else{
                   if(cifras<4){
                       codigoCIP = "000"+codigoCIP;
                   }else{
                       if(cifras<5){
                           codigoCIP = "00"+codigoCIP;
                       }else{
                           if(cifras<6){
                               codigoCIP = "0"+codigoCIP;
                           }
                       }
                   }
             }
            colegiado = colegiadoDelegado.buscaPorCip(codigoCIP);
            if(colegiado.getColnumeroCip()!=null){
                codigoCIP = null;
                activo = true;
                listarColEsp();
                buscaEspCap();            
                return null;
            }else{
                noHallado = true;
                mostrarMensaje("INFO: ", "No se encontro el coelgiado...", FacesMessage.SEVERITY_INFO);
                return null;
            }
        }catch(Exception ex){
            
            return null;
        }
    }

    public String cerrarVentana(){

        codigoCIP = "";
        noHallado = false;
        inicializa();
        return null;
    }

    public List<ColegiadoEspecialidad> ListaColegiadoEsp(){

        lista = null;
        return lista = colEspDelegado.listaEspColegiado(colegiado.getSolCodigo());
    }

    public String listarColEsp(){

        ListaColegiadoEsp();
        return null;
    }

    private boolean bandera;

    public boolean isBandera() {
        return bandera;
    }

    public void setBandera(boolean bandera) {
        this.bandera = bandera;
    }

    public String CambiaCapitulo(){

        colegiadoEsp = colEspDelegado.colegiadoEsp(colEsp.getColCodigo().getSolCodigo());
        colegiadoEsp.setCesPrioridad(false);
        colEspDelegado.edit(colegiadoEsp);

        colEsp.setCesPrioridad(true);
        colEspDelegado.edit(colEsp);
        listarColEsp();
        mostrarMensaje("INFO: ", "Se actualizo satisfactoriamente...", FacesMessage.SEVERITY_INFO);
        return null;
    }

    public String buscaColEsp(){

        colEsp = colEspDelegado.colegiadoEsp(colegiado.getSolCodigo());
        return null;
    }

    public String buscaEspCap(){

        buscaColEsp();
        espCap = espCapDelegado.espCapitulo(colEsp.getEcaCodigo().getEcaCodigo());
        return null;
    }

    public String nuevo(){        

        inicializa();
        return "ir_a_cambio";
    }

    public String editar(){

        colEsp.setColCodigo(colegiado);
        colEspDelegado.edit(colEsp);
        inicializa();
        return "ir_a_inicio";
    }

    public String terminar(){

        inicializa();
        return null;
    }

    public void inicializa(){

        colegiado = new Colegiado();
        colEsp = new ColegiadoEspecialidad();
        espCap = new EspecialidadCapitulo();
        esp = new Especialidad();
        capitulo = new Capitulo();

        colegiadoEsp = new ColegiadoEspecialidad();
        activo = false;
        noHallado = false;
    }

    public void mostrarMensaje(String resumen, String detalle, FacesMessage.Severity severidad) {
        try {
            FacesMessage fm = new FacesMessage(severidad, resumen, detalle);
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        } catch (Exception e) {
            FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), e.getMessage());
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        }
    }

}
